#include <stdio.h>
#include <iostream>
#include <queue>
using namespace std;
typedef struct node
{
    int qnum;
    int qmem;
}node;

int main()
{
    int i,k;
    int num=0;
    node car;
    cin>>k;
    queue<node>q[100];
    queue<node>q1;
    for(i=0;i<k;i++)
    {
        car.qnum=0;
        cin>>car.qmem;
        q1.push(car);
    }
     //queue<node>q[0];
    // num++;
    q[1].push(q1.front());
    q1.pop();
    //  q[0].front().qnum++;
    num++;
    while(q1.size())
    {
       for(i=1;i<=num;i++)
           {
               if(q1.front().qmem<q[i].back().qmem)
               {
                   q[i].push(q1.front());
                   q1.pop();
                   break;
               }
          }
               if(i>num)
               {
                   //cout<<num<<endl;
                   num++;
                //   queue<node>q[num];
                   q[num].push(q1.front());
                   q1.pop();
               }

        }
        //num=num+1;
        cout<<num;
}
